//-------------------------------------------------------------------------
// Copyright (c) 2000-2010 Ufinity. All Rights Reserved.
//
// This software is the confidential and proprietary information of
// Ufinity
//
// Original author: Administrator
//
//-------------------------------------------------------------------------
// UFINITY MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF
// THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
// TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
// PARTICULAR PURPOSE, OR NON-INFRINGEMENT. UFINITY SHALL NOT BE
// LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING,
// MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
//
// THIS SOFTWARE IS NOT DESIGNED OR INTENDED FOR USE OR RESALE AS ON-LINE
// CONTROL EQUIPMENT IN HAZARDOUS ENVIRONMENTS REQUIRING FAIL-SAFE
// PERFORMANCE, SUCH AS IN THE OPERATION OF NUCLEAR FACILITIES, AIRCRAFT
// NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL, DIRECT LIFE
// SUPPORT MACHINES, OR WEAPONS SYSTEMS, IN WHICH THE FAILURE OF THE
// SOFTWARE COULD LEAD DIRECTLY TO DEATH, PERSONAL INJURY, OR SEVERE
// PHYSICAL OR ENVIRONMENTAL DAMAGE ("HIGH RISK ACTIVITIES"). UFINITY
// SPECIFICALLY DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR
// HIGH RISK ACTIVITIES.
//-------------------------------------------------------------------------
package com.password.safe.service.impl;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import com.password.safe.dao.PasswordSafeDao;
import com.password.safe.service.SecurityService;
import com.password.safe.service.UserService;


public class UserServiceFileImpl implements UserService {
	private static Log logger = LogFactory.getLog(UserServiceFileImpl.class);
	private PasswordSafeDao passwordSafeDao;
	private SecurityService securityService;

	public boolean checkUser(String username, String password) {
		logger.debug("username:" + username + ",password:" + password);
		
		String passwords = passwordSafeDao.getAllPasswords();
		try {
			passwords = securityService.decode(password, passwords);
		} catch(Exception e) {
			logger.debug("decode passwords failed...user is invalidate.");
			return false;
		}
		String[] items = passwords.split("\n");
		for (String i : items) {
			if (i.startsWith(username+ ":")) {
				i = i.replace(username + ":", "").replace("\n", "");
				if (i.equals(password)) return true;
			}
		}
		return false;
	}
	
	public PasswordSafeDao getPasswordSafeDao() {
		return passwordSafeDao;
	}

	public void setPasswordSafeDao(PasswordSafeDao passwordSafeDao) {
		this.passwordSafeDao = passwordSafeDao;
	}

	public SecurityService getSecurityService() {
		return securityService;
	}

	public void setSecurityService(SecurityService securityService) {
		this.securityService = securityService;
	}

	public static void main(String[] args) {
		String target = "aaaa:bbbbbbb\n";
		System.out.println(target.replace("aaaa:", "").replace("\n", ""));
	}

}
